﻿using System;

namespace TypeBuilderFx.Core
{
    /// <summary>
    /// Represents a variable in code.  It could be an actual local variable, a method parameter or a return value.
    /// </summary>
    public interface IVariable
    {
        /// <summary>Returns the <see cref="Type"/> of the variable.</summary>
        Type Type { get; }

        /// <summary>Stores the stack in the variable.</summary>
        void StoreIn();

        /// <summary>Stacks the value of the variable.</summary>
        void StackOut();
    }
}